package com.brillilab.service.core.team;

import com.brillilab.domain.po.team.TeamMember;
import com.brillilab.domain.vo.team.TeamMemberVo;

import java.util.List;

/**
 * 研究团队成员
 *
 * @author WuMenghao
 * @since 2019-03-02
 */
public interface ITeamMemberService {
    boolean insertBatch(List<TeamMember> teamMembers);

    List<TeamMember> selectListByTeamIdAndState(Long teamId, Integer... state);

    List<TeamMember> selectListByTeamId(Long teamId);

    boolean updateBatch(List<TeamMember> teamMembers, Long teamId);

    List<TeamMember> selectListByLabIdAndState(Long labId, Integer state);

    List<TeamMemberVo> selectTeamMemberVoList(Long teamId, Integer state);

    TeamMemberVo selectLeaderVo(Long teamId);

    boolean updateTeamMemberState(Long teamId);

    List<TeamMember> selectAllTeamLabMemberId(Long labId);

    TeamMember selectLeader(Long teamId);

    TeamMember selectOneByLabMemberIdAndState(Long teamId, Long labMemberId, Integer state);

    boolean updateById(TeamMember newLeader);

    boolean getOutById(Long id);

    List<TeamMember> selectLeaderList(Long labId);

    TeamMember selectOneByLabIdAndLabMemberId(Long labId, Long labMemberId);

    TeamMember selectByLabMemberId(Long labMemberId);

    int insert(TeamMember teamMember);
}
